<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>BasicThreadFactory (Apache Commons Lang 3.3.2 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="BasicThreadFactory (Apache Commons Lang 3.3.2 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BasicThreadFactory.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/lang3/concurrent/BackgroundInitializer.html" title="class in org.apache.commons.lang3.concurrent"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.Builder.html" title="class in org.apache.commons.lang3.concurrent"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/lang3/concurrent/BasicThreadFactory.html" target="_top">Frames</a></li>
<li><a href="BasicThreadFactory.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.lang3.concurrent</div>
<h2 title="Class BasicThreadFactory" class="title">Class BasicThreadFactory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.lang3.concurrent.BasicThreadFactory</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">BasicThreadFactory</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></pre>
<div class="block"><p>
 An implementation of the <code>ThreadFactory</code> interface that provides some
 configuration options for the threads it creates.
 </p>
 <p>
 A <code>ThreadFactory</code> is used for instance by an <code>ExecutorService</code> to
 create the threads it uses for executing tasks. In many cases users do not
 have to care about a <code>ThreadFactory</code> because the default one used by an
 <code>ExecutorService</code> will do. However, if there are special requirements
 for the threads, a custom <code>ThreadFactory</code> has to be created.
 </p>
 <p>
 This class provides some frequently needed configuration options for the
 threads it creates. These are the following:
 </p>
 <ul>
 <li>A name pattern for the threads created by this factory can be specified.
 This is often useful if an application uses multiple executor services for
 different purposes. If the names of the threads used by these services have
 meaningful names, log output or exception traces can be much easier to read.
 Naming patterns are <em>format strings</em> as used by the <code>String.format()</code> method. The string can contain the place holder <code>%d</code>
 which will be replaced by the number of the current thread (<code>ThreadFactoryImpl</code> keeps a counter of the threads it has already created).
 For instance, the naming pattern <code>"My %d. worker thread"</code> will result
 in thread names like <code>"My 1. worker thread"</code>, <code>"My 2. worker thread"</code> and so on.</li>
 <li>A flag whether the threads created by this factory should be daemon
 threads. This can impact the exit behavior of the current Java application
 because the JVM shuts down if there are only daemon threads running.</li>
 <li>The priority of the thread. Here an integer value can be provided. The
 <code>java.lang.Thread</code> class defines constants for valid ranges of priority
 values.</li>
 <li>The <code>UncaughtExceptionHandler</code> for the thread. This handler is
 called if an uncaught exception occurs within the thread.</li>
 </ul>
 <p>
 <code>BasicThreadFactory</code> wraps another thread factory which actually
 creates new threads. The configuration options are set on the threads created
 by the wrapped thread factory. On construction time the factory to be wrapped
 can be specified. If none is provided, a default <code>ThreadFactory</code> is
 used.
 </p>
 <p>
 Instances of <code>BasicThreadFactory</code> are not created directly, but the
 nested <code>Builder</code> class is used for this purpose. Using the builder only
 the configuration options an application is interested in need to be set. The
 following example shows how a <code>BasicThreadFactory</code> is created and
 installed in an <code>ExecutorService</code>:
 </p>

 <pre>
 // Create a factory that produces daemon threads with a naming pattern and
 // a priority
 BasicThreadFactory factory = new BasicThreadFactory.Builder()
     .namingPattern(&quot;workerthread-%d&quot;)
     .daemon(true)
     .priority(Thread.MAX_PRIORITY)
     .build();
 // Create an executor service for single-threaded execution
 ExecutorService exec = Executors.newSingleThreadExecutor(factory);
 </pre></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.0</dd>
<dt><span class="strong">Version:</span></dt>
  <dd>$Id: BasicThreadFactory.java 1583482 2014-03-31 22:54:57Z niallp $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.Builder.html" title="class in org.apache.commons.lang3.concurrent">BasicThreadFactory.Builder</a></strong></code>
<div class="block">
 A <em>builder</em> class for creating instances of <code>BasicThreadFactory</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#getDaemonFlag()">getDaemonFlag</a></strong>()</code>
<div class="block">Returns the daemon flag.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#getNamingPattern()">getNamingPattern</a></strong>()</code>
<div class="block">Returns the naming pattern for naming newly created threads.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#getPriority()">getPriority</a></strong>()</code>
<div class="block">Returns the priority of the threads created by this factory.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#getThreadCount()">getThreadCount</a></strong>()</code>
<div class="block">Returns the number of threads this factory has already created.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#getUncaughtExceptionHandler()">getUncaughtExceptionHandler</a></strong>()</code>
<div class="block">Returns the <code>UncaughtExceptionHandler</code> for the threads created by
 this factory.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#getWrappedFactory()">getWrappedFactory</a></strong>()</code>
<div class="block">Returns the wrapped <code>ThreadFactory</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#newThread(java.lang.Runnable)">newThread</a></strong>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;r)</code>
<div class="block">Creates a new thread.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getWrappedFactory()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWrappedFactory</h4>
<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a>&nbsp;getWrappedFactory()</pre>
<div class="block">Returns the wrapped <code>ThreadFactory</code>. This factory is used for
 actually creating threads. This method never returns <b>null</b>. If no
 <code>ThreadFactory</code> was passed when this object was created, a default
 thread factory is returned.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the wrapped <code>ThreadFactory</code></dd></dl>
</li>
</ul>
<a name="getNamingPattern()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamingPattern</h4>
<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getNamingPattern()</pre>
<div class="block">Returns the naming pattern for naming newly created threads. Result can
 be <b>null</b> if no naming pattern was provided.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the naming pattern</dd></dl>
</li>
</ul>
<a name="getDaemonFlag()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDaemonFlag</h4>
<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;getDaemonFlag()</pre>
<div class="block">Returns the daemon flag. This flag determines whether newly created
 threads should be daemon threads. If <b>true</b>, this factory object
 calls <code>setDaemon(true)</code> on the newly created threads. Result can be
 <b>null</b> if no daemon flag was provided at creation time.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the daemon flag</dd></dl>
</li>
</ul>
<a name="getPriority()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPriority</h4>
<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;getPriority()</pre>
<div class="block">Returns the priority of the threads created by this factory. Result can
 be <b>null</b> if no priority was specified.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the priority for newly created threads</dd></dl>
</li>
</ul>
<a name="getUncaughtExceptionHandler()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUncaughtExceptionHandler</h4>
<pre>public final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a>&nbsp;getUncaughtExceptionHandler()</pre>
<div class="block">Returns the <code>UncaughtExceptionHandler</code> for the threads created by
 this factory. Result can be <b>null</b> if no handler was provided.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the <code>UncaughtExceptionHandler</code></dd></dl>
</li>
</ul>
<a name="getThreadCount()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getThreadCount</h4>
<pre>public&nbsp;long&nbsp;getThreadCount()</pre>
<div class="block">Returns the number of threads this factory has already created. This
 class maintains an internal counter that is incremented each time the
 <a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.html#newThread(java.lang.Runnable)"><code>newThread(Runnable)</code></a> method is invoked.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of threads created by this factory</dd></dl>
</li>
</ul>
<a name="newThread(java.lang.Runnable)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>newThread</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;newThread(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;r)</pre>
<div class="block">Creates a new thread. This implementation delegates to the wrapped
 factory for creating the thread. Then, on the newly created thread the
 corresponding configuration options are set.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true#newThread(java.lang.Runnable)" title="class or interface in java.util.concurrent">newThread</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - the <code>Runnable</code> to be executed by the new thread</dd>
<dt><span class="strong">Returns:</span></dt><dd>the newly created thread</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BasicThreadFactory.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/lang3/concurrent/BackgroundInitializer.html" title="class in org.apache.commons.lang3.concurrent"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/lang3/concurrent/BasicThreadFactory.Builder.html" title="class in org.apache.commons.lang3.concurrent"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/lang3/concurrent/BasicThreadFactory.html" target="_top">Frames</a></li>
<li><a href="BasicThreadFactory.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
